#ifndef CATS_H
#define CATS_H

#include <iostream>
#include <string>
#include <map>
#include <vector>

template <class T> inline void update_max(const T& x, T& max)
{
	if (x > max) max = x;
}

bool read_cost_benefits(std::istream&, std::map<std::string,std::vector<double>*>&, int& C);
void append_probabilities(std::istream& in, std::vector<double>& vd, const int min_size);
void finish_reading_format3(int c, double a, std::istream& in, std::vector<double>& vd, 
							const int size, std::string key);

void get_id(std::istream&, std::string&); // will make this return an istream... involves templates

#endif // CATS_H

